This invention relates generally to version control and in particular to version control of applications comprised of one or more data stores.
Software applications developed for use by an enterprise or for other purposes are typically comprised of multiple data stores. These data stores comprise information related to the application. As an application developer builds the application, the application developer makes changes to the source code in concert with the underlying data. Developers typically use source code management tools to branch, share, refresh, and rollback changes to application source code to work efficiently across multiple tasks and teams. However, these tools do not provide similar functionality for the associated data stores. These data stores require allocation of resources that are typically handled by people specializing in infrastructure management. Application developers typically don't have the knowledge or authorization required to manage these resources. For example, if an application developer needs the latest version of the data associated with an application, the developer must interact with an infrastructure management person to orchestrate a backup and restore of the data. As a result, any attempt to change the current data version requires time and resource intensive interactions, requiring the developers to wait. This causes delays in the application development process. If a developer attempts to work around these delays by using stale or incorrect data application quality may be compromised, resulting in further delays. Conventional techniques have shortcomings in the way resources are managed to support multiple versions of an application across a development team.